Nginx 使用总结

花了两天的时间终于用nginx+gunicorn部署好自己的microblog项目,中间遇到了大大小小的坑,在这里做一下记录。

nginx的安装

通过如下命令安装nginx

1
sudo apt-get install nginx

安装完成后输入如下命令

1
sudo service nginx start

在浏览器里面访问localhost,如果能看到welcome to nginx就说明安装成功了。

nginx目录结构

安装后的路径是/etc/nginx/

在这个路径下有两个比较重要的文件夹

  • sites-enabled/
    • 用于存放现在运行的网站的配置文件
  • sites-available/
    • 用于存放其他站点的配置文件。可以通过将该文目录下的配置文件以软链接的形式链接到sites-enabled/进行站点的切换。

/etc/nginx/sites-available 这个文件夹一般在你需要建立和管理多个站点的时候非常有用,可以帮助你更好的组织不同的项目。你需要在这里添加你的nginx配置文件并将他们链接至 sites-enabled 目录下。命令如下:

1
ln -s /etc/nginx/sites-available/dotcom /etc/nginx/sites-enabled/dotcom

nginx配置文件

nginx 配置文件有自己的一套语法,但是很简单,很像css的语法。先指定变量名,然后在花括号内编写指令。最顶层是 server。

基本语法可参照写给Web开发人员看的Nginx介绍

常用配置项的用法可参照Nginx基础入门之proxy反向代理常用配置项说明

下面列出一个自己配置时可用的方案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 80; # 要监听的端口号
server_name _; # 服务器的域名,因为我部署时没有注册域名,就用_代替

location / { # location代表配置路由
proxy_pass http://localhost:8000; # 将请求转发给localhost 8000端口, 即转发给gunicorn处理
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server {
listen 80;
server_name _;
location / {
proxy_pass http://localhost:8000;
proxy_redirect off;

}
}

完全卸载nginx

root权限下输入如下命令

1
2
3
4
rm -rf /etc/nginx/
rm -rf /usr/sbin/nginx
rm /usr/share/man/man1/nginx.1.gz
apt-get remove nginx*

原理就是删除关联文件以及文件夹

Reference